package com.sumainfor.zuul.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;
import org.apache.commons.lang.StringUtils;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 归属区域（公司）
 *
 * @author Jack Chen
 * @email pua@sumainfor.com
 * @date 2018-12-28 12:32:33
 */
@TableName("sys_area")
@Data
public class SysAreaEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 公司编号
     */
    @TableId
    private Integer areaId;
    /**
     * 父级编号（只有一个,一级部门为0）
     */
    private Integer parentId;
    /**
     * 所有父级编号（多个逗号隔开,一级部门为0）
     */
    private String parentIds;
    /**
     * 归属区域名称
     */
    private String name;
    /**
     * 区域类型  1.公司  2省份  3市  4县  5服务中心  6区
     */
    private Integer type;
    /**
     * 排序
     */
    private Integer orderNum;
    /**
     * 废弃标志位 0正常 1废弃
     */
    private Integer delfg;
    /**
     * 部门编号
     */
    private Integer deptid;

    /**
     * 上一级的名称
     */
    @TableField(exist = false)
    private String parentName;

    /**
     * Insert时间
     */
    @JSONField(format = "yyyy-MM-dd")
    private Date instm;
    /**
     * Insert端： 1 租客端 2市场部 3 工程部   4运营部   5财务部  6总经办 7发展部
     */
    private Integer insterm;
    /**
     * Insert操作者
     */
    private String insby;
    /**
     * Insert的类+方法：如 Class.Function
     */
    private String insfnc;
    /**
     * Update时间
     */
    private Date updtm;
    /**
     * Update端： 1 租客端 2市场部 3 工程部   4运营部   5财务部  6总经办 7发展部
     */
    private Integer updterm;
    /**
     * Update操作者
     */
    private String updby;
    /**
     * Update的类+方法：如 Class.Function
     */
    private String updfnc;

    /**
     * 子菜单
     */
    @TableField(exist = false)
    private List<SysAreaEntity> children;

    public String getParentName() {
        return StringUtils.isBlank(parentName) ? "根节点" : parentName;
    }
}
